960F - Pathwalks - CodeForces Solution


data structures dp graphs *2100

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

#define ll long long

vector<map<ll, ll>> mp;

ll get(ll x, ll w)
{
    auto it = mp[x].lower_bound(w);

    if(it == mp[x].begin()) 
        return 1;
    
    it--;
    return it->second + 1; 
}

void solve()
{
    ll n, m;
    cin >> n >> m;

    mp.resize(n+1);
    ll answer = 0;
 
    for (ll i = 0; i < m; i++)
    {
        ll a, b, w;
        cin >> a >> b >> w;

        ll val = get(a, w);
        if(get(b, w + 1) > val)
            continue;
        
        mp[b][w] = max(mp[b][w], val);
        auto it = mp[b].upper_bound(w);
        
        while(it != mp[b].end() && it->second <= val)
        {
            it = mp[b].erase(it);
        }

        answer = max(answer,val);
    }

    cout << answer << endl;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    solve();

    return 0;
}/*1691053055.4208179*/


Comments

Submit
0 Comments
More Questions

302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm
732A - Buy a Shovel
1220C - Substring Game in the Lesson
452A - Eevee
1647B - Madoka and the Elegant Gift
1408A - Circle Coloring
766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy
1294A - Collecting Coins
1227A - Math Problem
349A - Cinema Line
47A - Triangular numbers
1516B - AGAGA XOOORRR
1515A - Phoenix and Gold
1515B - Phoenix and Puzzle
155A - I_love_username